Idea远程debug SpringBoot项目

本地

ide 工具栏中 Run —> Edit Configurations.

选择左侧 + 号,选择 Remote,

修改name,
修改Host地址localhost 到远程端 192.168.1.102,自己项目启动到那个地址就填那个
修改Post,也可用默认5005

根据jdk版本选择command line arguments for runing remote JVM ,默认5-8

点击Apply即可;

远端启动之后,点击debug运行即可

远程端

在远程服务启动的时候 运行SringBoot时 加上

1
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

例如:

1
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 springboot-test-1.0-SNAPSHOT.jar

由此配置完成,可本地调试远程运行的代码了

注意:本地代码和远程服务器上的类文件相同

原理

Java 程序是运行在Java 虚拟机(JVM )上的,具有良好跨平台性,
因为Java程序统一以字节码的形式在JVM中运行,不同平台的虚拟机都统一使用这种相同的程序存储格式。
因为都是类字节码文件,只要本地代码和远程服务器上的类文件相同,两个JVM通过调试协议进行通信(例如通过插座在同一个端口进行通信),
另外需要注意的时,被调试的服务器需要开启调试模式,服务器端的代码和本地代码必须保持一致,则会造成断点无法进入的问题。

可能出现链接不通情况问题解决

1.检查服务器防火墙,有可能防火墙未开放

2.将 suspend=n 修改为 suspend=y 不启动远程调试,不启动项目,运行远端之后,再运行本地调试,就可以了

一辈子很短,努力的做好两件事就好:
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱。

继开 wechat
欢迎加我的微信,共同交流技术